A massively parallel processing (MPP) system allows an administrator to distribute data for distributed computing applications to a number of processors, called partitions or data nodes. For example a MPP database system allows distributing database data to multiple data nodes for query processing in a parallel and distributed manner. The concept of MPP is the coordinated processing of a program by multiple processors, with each processer working on different parts of the program. The processors communicate with one another to complete a task, with each of them using its own operating system and memory resources. Typically, MPP systems are built to scale to large number of data nodes, but they have limited high availability, a term used to reflect the characteristic of the system to continue running and handle failures with minimum planned or unplanned down-time or without requiring administrative intervention. Such systems allow the administrator to create a simplistic high availability cluster, which typically employs a two-tier master-slave setup of nodes or one-tier equal-peers notion, or may not even provide proactive monitoring of various components for failures. There is a need for an improved high availability cluster architecture that is also highly scalable.